In [1]:
import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go

data = pd.read_csv("apple_products.csv")
print(data.head())
                               Product Name  \
0         APPLE iPhone 8 Plus (Gold, 64 GB)   
1  APPLE iPhone 8 Plus (Space Grey, 256 GB)   
2      APPLE iPhone 8 Plus (Silver, 256 GB)   
3           APPLE iPhone 8 (Silver, 256 GB)   
4             APPLE iPhone 8 (Gold, 256 GB)   

                                         Product URL  Brand  Sale Price  \
0  https://www.flipkart.com/apple-iphone-8-plus-g...  Apple       49900   
1  https://www.flipkart.com/apple-iphone-8-plus-s...  Apple       84900   
2  https://www.flipkart.com/apple-iphone-8-plus-s...  Apple       84900   
3  https://www.flipkart.com/apple-iphone-8-silver...  Apple       77000   
4  https://www.flipkart.com/apple-iphone-8-gold-2...  Apple       77000   

     Mrp  Discount Percentage  Number Of Ratings  Number Of Reviews  \
0  49900                    0               3431                356   
1  84900                    0               3431                356   
2  84900                    0               3431                356   
3  77000                    0              11202                794   
4  77000                    0              11202                794   

                Upc  Star Rating   Ram  
0  MOBEXRGV7EHHTGUH          4.6  2 GB  
1  MOBEXRGVAC6TJT4F          4.6  2 GB  
2  MOBEXRGVGETABXWZ          4.6  2 GB  
3  MOBEXRGVMZWUHCBA          4.5  2 GB  
4  MOBEXRGVPK7PFEJZ          4.5  2 GB  
In [2]:
print(data.isnull().sum())
Product Name           0
Product URL            0
Brand                  0
Sale Price             0
Mrp                    0
Discount Percentage    0
Number Of Ratings      0
Number Of Reviews      0
Upc                    0
Star Rating            0
Ram                    0
dtype: int64
In [3]:
print(data.describe())
          Sale Price            Mrp  Discount Percentage  Number Of Ratings  \
count      62.000000      62.000000            62.000000          62.000000   
mean    80073.887097   88058.064516             9.951613       22420.403226   
std     34310.446132   34728.825597             7.608079       33768.589550   
min     29999.000000   39900.000000             0.000000         542.000000   
25%     49900.000000   54900.000000             6.000000         740.000000   
50%     75900.000000   79900.000000            10.000000        2101.000000   
75%    117100.000000  120950.000000            14.000000       43470.000000   
max    140900.000000  149900.000000            29.000000       95909.000000   

       Number Of Reviews  Star Rating  
count          62.000000    62.000000  
mean         1861.677419     4.575806  
std          2855.883830     0.059190  
min            42.000000     4.500000  
25%            64.000000     4.500000  
50%           180.000000     4.600000  
75%          3331.000000     4.600000  
max          8161.000000     4.700000  
In [4]:
highest_rated = data.sort_values(by=["Star Rating"], 
                                 ascending=False)
highest_rated = highest_rated.head(10)
print(highest_rated['Product Name'])
20     APPLE iPhone 11 Pro Max (Midnight Green, 64 GB)
17         APPLE iPhone 11 Pro Max (Space Grey, 64 GB)
16    APPLE iPhone 11 Pro Max (Midnight Green, 256 GB)
15               APPLE iPhone 11 Pro Max (Gold, 64 GB)
14              APPLE iPhone 11 Pro Max (Gold, 256 GB)
0                    APPLE iPhone 8 Plus (Gold, 64 GB)
29                     APPLE iPhone 12 (White, 128 GB)
32          APPLE iPhone 12 Pro Max (Graphite, 128 GB)
35                     APPLE iPhone 12 (Black, 128 GB)
36                      APPLE iPhone 12 (Blue, 128 GB)
Name: Product Name, dtype: object
In [5]:
iphones = highest_rated["Product Name"].value_counts()
label = iphones.index
counts = highest_rated["Number Of Ratings"]
figure = px.bar(highest_rated, x=label, 
                y = counts, 
            title="Number of Ratings of Highest Rated iPhones")
figure.show()
APPLE iPhone 11 Pro Max (Midnight Green, 64 GB)APPLE iPhone 11 Pro Max (Space Grey, 64 GB)APPLE iPhone 11 Pro Max (Midnight Green, 256 GB)APPLE iPhone 11 Pro Max (Gold, 64 GB)APPLE iPhone 11 Pro Max (Gold, 256 GB)APPLE iPhone 8 Plus (Gold, 64 GB)APPLE iPhone 12 (White, 128 GB)APPLE iPhone 12 Pro Max (Graphite, 128 GB)APPLE iPhone 12 (Black, 128 GB)APPLE iPhone 12 (Blue, 128 GB)0100020003000
Number of Ratings of Highest Rated iPhonesxNumber Of Ratings
plotly-logomark
In [6]:
iphones = highest_rated["Product Name"].value_counts()
label = iphones.index
counts = highest_rated["Number Of Reviews"]
figure = px.bar(highest_rated, x=label, 
                y = counts, 
            title="Number of Reviews of Highest Rated iPhones")
figure.show()
APPLE iPhone 11 Pro Max (Midnight Green, 64 GB)APPLE iPhone 11 Pro Max (Space Grey, 64 GB)APPLE iPhone 11 Pro Max (Midnight Green, 256 GB)APPLE iPhone 11 Pro Max (Gold, 64 GB)APPLE iPhone 11 Pro Max (Gold, 256 GB)APPLE iPhone 8 Plus (Gold, 64 GB)APPLE iPhone 12 (White, 128 GB)APPLE iPhone 12 Pro Max (Graphite, 128 GB)APPLE iPhone 12 (Black, 128 GB)APPLE iPhone 12 (Blue, 128 GB)0100200300
Number of Reviews of Highest Rated iPhonesxNumber Of Reviews
plotly-logomark
In [7]:
figure = px.scatter(data_frame = data, x="Number Of Ratings",
                    y="Sale Price", size="Discount Percentage", 
                    trendline="ols", 
                    title="Relationship between Sale Price and Number of Ratings of iPhones")
figure.show()
020k40k60k80k100k20k40k60k80k100k120k140k
Relationship between Sale Price and Number of Ratings of iPhonesNumber Of RatingsSale Price
plotly-logomark
In [8]:
figure = px.scatter(data_frame = data, x="Number Of Ratings",
                    y="Discount Percentage", size="Sale Price", 
                    trendline="ols", 
                    title="Relationship between Discount Percentage and Number of Ratings of iPhones")
figure.show()
020k40k60k80k100k051015202530
Relationship between Discount Percentage and Number of Ratings of iPhonesNumber Of RatingsDiscount Percentage
plotly-logomark
In [ ]: